package com.example.wangzh.mytest.view;

import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import androidx.annotation.Nullable;

import com.example.wangzh.mytest.constant.LogTag;

public class ScaleAndPivotView extends View {
    public ScaleAndPivotView(Context context) {
        super(context);
        init();

    }

    public ScaleAndPivotView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public ScaleAndPivotView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();

    }

    public ScaleAndPivotView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        init();

    }

    private boolean isScaled = false;

    private void init() {
        setBackgroundColor(Color.BLUE);
        // 设置点击事件触发变换
        setOnClickListener(v -> {
            if (!isScaled) {
                // 第一次放大
                setPivotX(0);
                setPivotY(0);
                setScaleX(2f);
                setScaleY(2f);
                isScaled = true;
            } else {
                // 第二次设置枢轴点为中心
                setPivotX(getWidth());
                setPivotY(getHeight());
                //可以添加后续变换（如旋转）观察效果
                setRotation(10);
            }
            invalidate();
        });
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        // 初始化枢轴点日志
        Log.d(LogTag.WZH_TEST, "初始枢轴点: (" + getPivotX() + ", " + getPivotY() + ")");
    }
}